收集到的方法
BrowserWindow 配置
- webPreferences.preload
- String (可选) -在页面运行其他脚本之前预先加载指定的脚本 无论页面是否集成Node, 此脚本都可以访问所有Node API 脚本路径为文件的绝对路径。 当 node integration 关闭时, 预加载的脚本将从全局范围重新引入node的全局引用标志 参考示例.
webContents
方法
executeJavaScript
insertCSS
事件
did-finish-load
dom-ready
遇到的一些坑(好好看控制台,错误信息有可能在最上面,滚动到看不见了)
preload
脚本语法脚本本身只能用
commonjs
来写不支持
import
也不支持
require
ES6
module,只能用module.exports
1
2
3
4
5
6
7
8
9
10
11
12
13// preload.js
// const rendererAPI = require('./RendererAPI').default
// rendererAPI()
// export default () => {
// SyntaxError: Unexpected token 'export'
// import RendererAPI from './RendererAPI'
// // RendererAPI()
// import RendererAPI from './RendererAPI'
// SyntaxError: Cannot use import statement outside a module
const rendererAPI = require('./RendererAPI')
rendererAPI()报错备忘 注意路径问题(一定要绝对路径),要用打包后的地址
preload:path.join(app.getAppPath(),'renderer-preload.js')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19//module.exports = xxx
Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
// const rendererAPI = require('./RendererAPI').default
// rendererAPI()
// export default () => {
// SyntaxError: Unexpected token 'export'
// import RendererAPI from './RendererAPI'
// SyntaxError: Cannot use import statement outside a module
// cannot load preload.js Unexpected Identifier
Unable to create basic Accelerated OpenGL renderer.
Unable to create basic Accelerated OpenGL renderer.
Core Image is now using the software OpenGL renderer. This will be slow.
executeJavaScript`时机
- 判断跟
dom-ready
,load
等的关系
- 判断跟
参考资料
- BrowserWindow关于preload的说明
- sandbox中preload的说明
- webContents文档
- 在Electron中最快速预加载脚本
- Electron webview完全指南
- #217 Electron 深度实践总结
- electron 提供SDK接口注入到远端页面使用
- Electron 爬坑记
- electron程序,如何在主进程远程页面中注入js及css?
- Electron 预加载远程页面提升用户体验
- electron 研究笔记
- electron初探问题总结
- 我眼中的 Electron
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/cross-platform/electron/2018-07-10-electron-window-inject/